{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import os\n",
    "import cv2\n",
    "import torch\n",
    "import torch.nn as nn\n",
    "import torch.optim as optim\n",
    "import torch.nn.functional as F\n",
    "\n",
    "import numpy as np\n",
    "import SimpleITK as sitk\n",
    "import matplotlib.pyplot as plt\n",
    "from torchvision.utils import make_grid\n",
    "\n",
    "from utils.utils import IoU\n",
    "from TverskyLoss.binarytverskyloss import BinaryTverskyLoss\n",
    "from DiceLoss.multi_dice_loss import MultiDiceLoss\n",
    "from LovaszSoftmax.lovasz_loss import LovaszSoftmax"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(19, 76, 76)\n"
     ]
    }
   ],
   "source": [
    "image_path='./Data/ProstateX-0002/t2w.mhd'\n",
    "seg_path='./Data/ProstateX-0002/seg.mhd'\n",
    "itkimage=sitk.ReadImage(image_path)\n",
    "image=sitk.GetArrayFromImage(itkimage)\n",
    "\n",
    "itkimage=sitk.ReadImage(seg_path)\n",
    "seg=sitk.GetArrayFromImage(itkimage)\n",
    "\n",
    "scale=0.2\n",
    "image=np.transpose(image,(1,2,0))\n",
    "seg=np.transpose(seg,(1,2,0))\n",
    "\n",
    "hei,wid,_=image.shape\n",
    "\n",
    "image=cv2.resize(image,(int(scale*wid),int(scale*hei)),cv2.INTER_CUBIC)\n",
    "seg=cv2.resize(seg,(int(scale*wid),int(scale*hei)),cv2.INTER_NEAREST)\n",
    "image=np.transpose(image,(2,0,1))\n",
    "seg=np.transpose(seg,(2,0,1))\n",
    "print(seg.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "image=np.asarray(image,dtype=np.float32)\n",
    "image=(image-np.mean(image))/np.std(image)\n",
    "image=np.expand_dims(image,0)\n",
    "seg=np.asarray(seg,np.int64)\n",
    "data=torch.from_numpy(image)\n",
    "target=torch.from_numpy(seg)\n",
    "data=data.unsqueeze(0).cuda()\n",
    "target=target.unsqueeze(0).cuda()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "tmp=data.squeeze(1)\n",
    "tmp=tmp.permute(1,0,2,3)\n",
    "grid=make_grid(tmp,nrow=8,normalize=True)\n",
    "grid_tmp=grid.cpu().numpy()\n",
    "grid_tmp=np.transpose(grid_tmp,(1,2,0))\n",
    "plt.imshow(grid_tmp)\n",
    "plt.show()\n",
    "\n",
    "tmp=target.permute(1,0,2,3)\n",
    "grid=make_grid(tmp,nrow=8)\n",
    "grid_tmp=grid.cpu().numpy()\n",
    "grid_tmp=np.transpose(grid_tmp,(1,2,0))\n",
    "plt.imshow(grid_tmp*255,cmap='gray')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "class Net(nn.Module):\n",
    "    def __init__(self,in_channels,out_channels):\n",
    "        super(Net, self).__init__()\n",
    "        self.Conv1=nn.Sequential(\n",
    "            nn.Conv3d(in_channels,32,3,padding=1),\n",
    "            nn.BatchNorm3d(32),\n",
    "            nn.ReLU()\n",
    "        )\n",
    "        self.Conv2=nn.Sequential(\n",
    "            nn.Conv3d(32,64,3,padding=1),\n",
    "            nn.BatchNorm3d(64),\n",
    "            nn.ReLU()\n",
    "        )\n",
    "        self.Conv3=nn.Sequential(\n",
    "            nn.Conv3d(64,out_channels,3,padding=1),\n",
    "            nn.Softmax(dim=1)\n",
    "        )\n",
    "    def forward(self,input):\n",
    "        out=self.Conv1(input)\n",
    "        out=self.Conv2(out)\n",
    "        out=self.Conv3(out)\n",
    "        return out\n",
    "        "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##  Dice Loss"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.005641043186187744\n"
     ]
    }
   ],
   "source": [
    "iters=100\n",
    "model=Net(1,2).cuda()\n",
    "optimizer=optim.Adam(model.parameters(),lr=0.001,betas=(0.9,0.99))\n",
    "dice_loss=MultiDiceLoss([0.5,0.5],num_class=2)\n",
    "ious=[]\n",
    "losses=[]\n",
    "for i in range(iters):\n",
    "    optimizer.zero_grad()\n",
    "    out1=model(data)\n",
    "    loss,_=dice_loss(out1,target)\n",
    "    loss.backward()\n",
    "    optimizer.step()\n",
    "    _,pred1=out1.max(1)\n",
    "    iou=IoU(pred1.cpu().numpy(),target.cpu().numpy())\n",
    "    ious.append(iou)\n",
    "    losses.append(loss.item())\n",
    "plt.plot(ious)\n",
    "plt.plot(losses)\n",
    "plt.show()\n",
    "print(np.min(losses))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Lovasz Softmax"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.050817009061574936\n"
     ]
    }
   ],
   "source": [
    "iters=100\n",
    "model=Net(1,2).cuda()\n",
    "optimizer=optim.Adam(model.parameters(),lr=0.001,betas=(0.9,0.99))\n",
    "\n",
    "ious=[]\n",
    "losses=[]\n",
    "for i in range(iters):\n",
    "    lovasz_loss=LovaszSoftmax()\n",
    "    optimizer.zero_grad()\n",
    "    out1=model(data)\n",
    "    loss=lovasz_loss(out1,target)\n",
    "    loss.backward()\n",
    "    optimizer.step()\n",
    "    _,pred1=out1.max(1)\n",
    "    iou=IoU(pred1.cpu().numpy(),target.cpu().numpy())\n",
    "    ious.append(iou)\n",
    "    losses.append(loss.item())\n",
    "plt.plot(ious)\n",
    "plt.plot(losses)\n",
    "plt.show()\n",
    "print(np.min(losses))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.9748463034629822\n"
     ]
    }
   ],
   "source": [
    "iters=100\n",
    "model=Net(1,2).cuda()\n",
    "optimizer=optim.Adam(model.parameters(),lr=0.001,betas=(0.9,0.99))\n",
    "\n",
    "ious=[]\n",
    "losses=[]\n",
    "for i in range(iters):\n",
    "    tversky_loss=BinaryTverskyLoss(alpha=0.5,beta=0.5)\n",
    "    optimizer.zero_grad()\n",
    "    out1=model(data)\n",
    "    loss=tversky_loss(out1,target)\n",
    "    loss.backward()\n",
    "    optimizer.step()\n",
    "    _,pred1=out1.max(1)\n",
    "    iou=IoU(pred1.cpu().numpy(),target.cpu().numpy())\n",
    "    ious.append(iou)\n",
    "    losses.append(loss.item())\n",
    "plt.plot(ious)\n",
    "plt.plot(losses)\n",
    "plt.show()\n",
    "print(np.min(losses))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.09389668703079224\n"
     ]
    }
   ],
   "source": [
    "iters=100\n",
    "model=Net(1,2).cuda()\n",
    "optimizer=optim.Adam(model.parameters(),lr=0.001,betas=(0.9,0.99))\n",
    "\n",
    "ious=[]\n",
    "losses=[]\n",
    "for i in range(iters):\n",
    "    tversky_loss=BinaryTverskyLoss(alpha=0.5,beta=0.5)\n",
    "    optimizer.zero_grad()\n",
    "    out1=model(data)\n",
    "    loss=tversky_loss(out1,target)\n",
    "    loss.backward()\n",
    "    optimizer.step()\n",
    "    _,pred1=out1.max(1)\n",
    "    iou=IoU(pred1.cpu().numpy(),target.cpu().numpy())\n",
    "    ious.append(iou)\n",
    "    losses.append(loss.item())\n",
    "plt.plot(ious)\n",
    "plt.plot(losses)\n",
    "plt.show()\n",
    "print(np.min(losses))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "IoU: 0.8141529658226211\n"
     ]
    }
   ],
   "source": [
    "_,pred1=out1.max(1)\n",
    "tmp=pred1.permute(1,0,2,3)\n",
    "grid=make_grid(tmp,nrow=8)\n",
    "grid_tmp=grid.cpu().numpy()\n",
    "grid_tmp=np.transpose(grid_tmp,(1,2,0))\n",
    "plt.imshow(grid_tmp*255,cmap='gray')\n",
    "plt.show()\n",
    "\n",
    "diff=(target).abs()\n",
    "tmp=diff.permute(1,0,2,3)\n",
    "grid=make_grid(tmp,nrow=8)\n",
    "grid_tmp=grid.cpu().numpy()\n",
    "grid_tmp=np.transpose(grid_tmp,(1,2,0))\n",
    "plt.imshow(grid_tmp*255,cmap='gray')\n",
    "plt.show()\n",
    "\n",
    "print('IoU: {}'.format(IoU(pred1.cpu().numpy(),target.cpu().numpy())))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
